home *** CD-ROM | disk | FTP | other *** search
- .Model TPascal
-
- .Code
-
- Locals @@
-
- CheckSnow PROC NEAR
- Push Dx
- Push Bx
- Push Bp
- Push Ax
-
- Mov Dx, 3DAh
- Mov Bl, 9
- Mov Bp, Ax
-
- @@Repeat:
- In Al, Dx
- Rcr Al, 1
- Jb @@Repeat
-
- @@Done:
- Pop Ax
- Pop Bp
- Pop Bx
- Pop Dx
- Ret
- CheckSnow ENDP
-
- PUBLIC FfillAsm, FfillGetColorAsm, FcopyAsm, FwriteAsm, FwriteGetColorAsm
- PUBLIC FattrAsm, FwriteVasm, FwriteVGetColorAsm
-
- FfillGetColorAsm PROC NEAR FillChar:Word, Dest:DWord, Rows:Word, Cols:Word, SkipDest:Word, Snow:Byte
- Push Ds
-
- Les Di, Dest
- Mov Ax, FillChar
- Mov Bx, Rows
- Mov Dx, SkipDest
-
- Cld
- Cmp Snow,1
- Je @@SnowRepeat
- @@Repeat:
- Mov Cx, Cols
-
- @@Repeat1:
- StosB
- Inc Di
- Loop @@Repeat1
-
- Add Di, Dx
-
- Dec Bx
- Jne @@Repeat
-
- @@Done:
- Pop Ds
- Ret
-
- @@SnowRepeat:
- Mov Cx, Cols
-
- @@SnowRepeat1:
- Call CheckSnow
- StosB
- Inc Di
- Loop @@SnowRepeat1
-
- Add Di, Dx
-
- Dec Bx
- Jne @@SnowRepeat
- Jmp @@Done
- FfillGetColorAsm ENDP
-
- FfillAsm PROC NEAR FillChar:Word, Dest:DWord, Rows:Word, Cols:Word, SkipDest:Word, Snow:Byte
- Push Ds
-
- Les Di, Dest
- Mov Ax, FillChar
- Mov Bx, Rows
- Mov Cx, Cols
- Mov Dx, SkipDest
-
- Cld
- Cmp Snow, 1
- Je @@SnowRepeat
- @@Repeat:
- Mov Cx, Cols
- Rep StosW
-
- Add Di, Dx
-
- Dec Bx
- Jne @@Repeat
-
- @@Done:
- Pop Ds
- Ret
-
- @@SnowRepeat:
- Mov Cx, Cols
- @@SnowRepeat1:
- Call CheckSnow
- StosW
- Loop @@SnowRepeat1
- Add Di, Dx
-
- Dec Bx
- Jne @@SnowRepeat
- Jmp @@Done
- FfillAsm ENDP
-
- FcopyAsm PROC NEAR Source:Dword, Dest:Dword, Rows:Word, Cols:Word, SkipSource:Word, SkipDest:Word, Snow:Byte
- Push Ds
-
- Mov Bx, SkipSource
- Mov Dx, SkipDest
- Lds Si, Source
- Les Di, Dest
- Mov Ax, Rows
- Cld
- Cmp Snow, 1
- Je @@SnowRepeat
-
- @@Repeat:
- Mov Cx, Cols
- Rep MovsW
-
- Add Si, Bx
- Add Di, Dx
-
- Dec Ax
- Jne @@Repeat
-
- @@Done:
- Pop Ds
- Ret
-
- @@SnowRepeat:
- Mov Cx, Cols
- @@SnowRepeat1:
- Call CheckSnow
- MovsW
- Loop @@SnowRepeat1
-
- Add Si, Bx
- Add Di, Dx
-
- Dec Ax
- Jne @@SnowRepeat
- Jmp @@Done
-
- FcopyAsm ENDP
-
- FwriteAsm PROC NEAR Source:DWord, Dest:DWord, Len:Word, Color:Word, Snow:Byte
- Mov Dx, Ds
-
- Lds Si, Source
- Les Di, Dest
- Mov Cx, Len
- Mov Ax, Color
- Cld
- Cmp Snow, 1
- Je @@SnowRepeat
-
- @@Repeat:
- Mov Al, Ds:[Si]
- StosW
- Inc Si
- Loop @@Repeat
-
- @@Done:
- Mov Ds, Dx
- Ret
-
- @@SnowRepeat:
- Mov Al, Ds:[Si]
- Call CheckSnow
- StosW
- Inc Si
- Loop @@SnowRepeat
- Jmp @@Done
-
- FwriteAsm ENDP
-
- FwriteGetColorAsm PROC NEAR Source:DWord, Dest:DWord, Len:Word, Snow:Byte
- Mov Dx, Ds
-
- Lds Si, Source
- Les Di, Dest
- Mov Cx, Len
- Cmp Snow, 1
- Je @@SnowRepeat
-
- @@Repeat:
- Mov Al, Ds:[Si]
- StosB
- Inc Si
- Inc Di
- Loop @@Repeat
-
- @@Done:
- Mov Ds, Dx
- Ret
-
- @@SnowRepeat:
- Mov Al, Ds:[Si]
- Call CheckSnow
- StosB
- Inc Si
- Inc Di
- Loop @@SnowRepeat
- Jmp @@Done
- FwriteGetColorAsm ENDP
-
- FattrAsm PROC NEAR FillChar:Word, Dest:DWord, Rows:Word, Cols:Word, SkipDest:Word, Snow:Byte
- Push Ds
-
- Les Di, Dest
- Mov Ax, FillChar
- Mov Bx, Rows
- Mov Dx, SkipDest
-
- Cld
- Cmp Snow,1
- Je @@SnowRepeat
- @@Repeat:
- Mov Cx, Cols
-
- @@Repeat1:
- Mov Al, Es:[Di]
- StosW
- Loop @@Repeat1
-
- Add Di, Dx
-
- Dec Bx
- Jne @@Repeat
-
- @@Done:
- Pop Ds
- Ret
-
- @@SnowRepeat:
- Mov Cx, Cols
-
- @@SnowRepeat1:
- Mov Al, Es:[Di]
- Call CheckSnow
- StosW
- Loop @@SnowRepeat1
-
- Add Di, Dx
-
- Dec Bx
- Jne @@SnowRepeat
- Jmp @@Done
- FattrAsm ENDP
-
- FwriteVasm PROC NEAR Source:DWord, Dest:DWord, Len:Word, Color:Word, SkipDest, Snow:Byte
- Mov Dx, Ds
-
- Lds Si, Source
- Les Di, Dest
- Mov Cx, Len
- Mov Ax, Color
- Mov Bx, SkipDest
- Cld
- Cmp Snow, 1
- Je @@SnowRepeat
-
- @@Repeat:
- Mov Al, Ds:[Si]
- Mov Es:[Di], Ax
- Add Di, Bx
- Inc Si
- Loop @@Repeat
-
- @@Done:
- Mov Ds, Dx
- Ret
-
- @@SnowRepeat:
- Mov Al, Ds:[Si]
- Call CheckSnow
- Mov Es:[Di], Ax
- Add Di, Bx
- Inc Si
- Loop @@SnowRepeat
- Jmp @@Done
-
- FwritevAsm ENDP
-
- FwriteVGetColorAsm PROC NEAR Source:DWord, Dest:DWord, Len:Word, SkipDest:Word, Snow:Byte
- Mov Dx, Ds
-
- Lds Si, Source
- Les Di, Dest
- Mov Cx, Len
- Mov Bx, SkipDest
- Cmp Snow, 1
- Je @@SnowRepeat
-
- @@Repeat:
- Mov Al, Ds:[Si]
- Mov Es:[Di], Al
- Add Di, Bx
- Inc Si
- Loop @@Repeat
-
- @@Done:
- Mov Ds, Dx
- Ret
-
- @@SnowRepeat:
- Mov Al, Ds:[Si]
- Call CheckSnow
- StosW
- Inc Di
- Inc Si
- Loop @@SnowRepeat
- Jmp @@Done
- FwriteVGetColorAsm ENDP
-
-
- CODE ENDS
- END